package stockscreener.negocio.indicador;

import stockscreener.controlador.ControladorDadosEconomicosFinanceiros;
import stockscreener.negocio.Acao;
import stockscreener.negocio.DemonstracaoDoResultadoDoExercicio;

public class LucroPorAcao extends Indicador {

	public LucroPorAcao() {
		this.setNome("LPA");
	}

	public LucroPorAcao(Acao acao) {
		this();
		this.setAcao(acao);
	}

	@Override
	public double calcular() {
		DemonstracaoDoResultadoDoExercicio ultimaDRE = ControladorDadosEconomicosFinanceiros.get()
				.obterUltimaDemonstracaoDeResultadoDoExercicio(this.getAcao().getEmpresa());

		Double lpa = 0d;
		if (this.getAcao().getEmpresa().getQuantidadeTotalDeAcoes() != null) {
			Double quantidadeTotalDeAcoes = this.getAcao().getEmpresa().getQuantidadeTotalDeAcoes().doubleValue();
			if (ultimaDRE != null && quantidadeTotalDeAcoes != 0) {
				lpa = (ultimaDRE.getLucroLiquido().doubleValue() / quantidadeTotalDeAcoes);
			}
		}
		this.setValor(lpa);
		return lpa;
	}
}
